// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;

// import java.util.ArrayList;
// import java.util.List;

#include "OracleFileSpecification.h"
#include "../../../../ast/SQLExpr.h"
#include "../../visitor/OracleASTVisitor.h"
#include "../../../../../utils/listTran.h"

OracleFileSpecification::OracleFileSpecification()
{
  fileNames = std::make_shared<std::list<SQLExpr_ptr>>();
}

// @Override
void OracleFileSpecification::accept0(OracleASTVisitor_ptr visitor)
{
  if (visitor->visit(SharedObject(OracleFileSpecification)))
  {
    SQLObject_list_ptr tmp1 = ListTran::tran_class<SQLExpr, SQLObject>(fileNames);
    acceptChild(visitor, tmp1);
    acceptChild(visitor, size);
    acceptChild(visitor, autoExtendOn);
  }
  visitor->endVisit(SharedObject(OracleFileSpecification));
}

SQLExpr_ptr OracleFileSpecification::getAutoExtendOn()
{
  return autoExtendOn;
}

void OracleFileSpecification::setAutoExtendOn(SQLExpr_ptr autoExtendOn)
{
  this->autoExtendOn = autoExtendOn;
}

SQLExpr_ptr OracleFileSpecification::getSize()
{
  return size;
}

void OracleFileSpecification::setSize(SQLExpr_ptr size)
{
  this->size = size;
}

BOOL_ptr OracleFileSpecification::isAutoExtendOff()
{
  return autoExtendOff;
}

void OracleFileSpecification::setAutoExtendOff(BOOL_ptr autoExtendOff)
{
  this->autoExtendOff = autoExtendOff;
}

SQLExpr_list_ptr OracleFileSpecification::getFileNames()
{
  return fileNames;
}

void OracleFileSpecification::setFileNames(SQLExpr_list_ptr fileNames)
{
  this->fileNames = fileNames;
}
